/*
 * Copyright 2011 Sebastian Maurer
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package erepublik;

import java.util.List;

import erepublik.dto.Battle;
import erepublik.dto.Citizen;
import erepublik.dto.Combatant;
import erepublik.dto.Company;
import erepublik.dto.CountryDetails;
import erepublik.dto.ExchangeOffer;
import erepublik.dto.Industry;
import erepublik.dto.MarketOffer;
import erepublik.dto.Region;
import erepublik.dto.War;

public interface IERepublikService {
	
	Battle getBattle(int id) throws ERepublikException;
	
	List<Battle> getBattles(int warId) throws ERepublikException;

	Citizen getCitizen(int id) throws ERepublikException;
	
	Citizen getCitizen(String name) throws ERepublikException;
	
	List<Integer> getCitizenIds(int regionId) throws ERepublikException;
	
	List<CountryDetails> getCountries() throws ERepublikException;
	
	CountryDetails getCountry(int id) throws ERepublikException;
	
	Region getRegion(int id) throws ERepublikException;
	
	List<Region> getRegions(int countryId) throws ERepublikException;
	
	War getWar(int id) throws ERepublikException;
	
	List<War> getWars(int countryId) throws ERepublikException;
	
	List<Combatant> getCombatants(int battleId) throws ERepublikException;
	
	Company getCompany(int id) throws ERepublikException;
	
	List<ExchangeOffer> getExchangeOffers(String buyCurrency, String sellCurrency) throws ERepublikException;
	
	List<MarketOffer> getMarketOffers(int industryId, int countryId, int attr1, int attr2) throws ERepublikException;
	
	List<Industry> getIndustries() throws ERepublikException;
	
	List<Citizen> getCitizens(int countryId) throws ERepublikException;
	
}
